% funkcja generuje tablice zamowien dla zmiennej serwer.zamowienia.
% - czas wystawienia zamowien generowany jest losowo (kazde kolejne
%   zamowienie zostanie zgloszone po uplywie od offset_min do offset_max
%   jednostek czasu
% - ilosc produktow w kazdym z zamowien generowana jest losowo w przedziale
%   (produkty_min,produkty_max)
% - indeksy produktow w zamowieniu generowane sa losowo z dostepnych
%   znalezionych w mapie magazynu
function zamowienia = wygeneruj_zamowienia(ilosc_zamowien,mapa,produkty_max)
    produkty=[]; % tablica indeksow dostepnych produktow
    czas = 0;
    zamowienia = [];
    
    % ilosc jednostek czasu jakie moga rozdzielac poszczegolne zamowienia
    offset_min=1;
    offset_max=10;
    
    % ilosc produktow jakie moga wystapic w pojedynczym zamowieniu
    produkty_min=1;
    if(produkty_max<1) produkty_max=10; end;
    
    % zapis do "produkty" wszystkich wartosci pol z "mapa", ktore maja
    % wartosc powyzej 1000 (czyli sa indeksami produktow)
    for j=1:size(mapa,1) % wiersze
        for i=1:size(mapa,2) % kolumny
            if(mapa(i,j)>1000) produkty = [produkty mapa(i,j)]; end;
        end;
    end;
    
    % generowanie zamowien
    for i=1:ilosc_zamowien,
        zamowienie_ob = zamowienie();
        
        % zgloszenie kolejnego zamowienia nastapi offset_min do offset_max
        % jednostek czasu po poprzednim zamowieniu
        zamowienie_ob.czas=czas+random('uniform',offset_min,offset_max,1);
        czas = zamowienie_ob.czas;
        
        % generowanie indeksow produktow dla danego zamowienia
        for j=produkty_min:random('unid',produkty_max)
            indeks=random('unid',size(produkty,2));
            zamowienie_ob.produkty = [zamowienie_ob.produkty produkty(indeks)];
            zamowienie_ob.indeks = i;
        end;
        
        zamowienia = [zamowienia zamowienie_ob];
    end;
